Many conventional data centers are protected using geographically remote backup data centers with data replication. The backup data centers are not being used except for disaster recovery or testing/auditing for recoverability of the backup data centers. As a result, less than 50% of investment on data centers is being utilized giving rise to very low ROI (Return on Investment). Furthermore, because the backup data centers are not being used, it is very costly and time consuming to test and audit their recoverability. It may take hours or days to recover and continue business in case of a failure of primary site giving rise to high RTO (recovery time objective).
An ideal deployment of the data centers, the primary data center and the backup data centers, would be to make all centers active serving inputs and outputs (I/Os) from production servers concurrently to achieve high ROI, load balancing, and low RTO (Recovery Time Objective). The challenge to such active-active data centers, however, is the long communication latency between the data centers. For multiple data centers that are tens or hundreds of miles apart, the latency is in the range of tens and up to hundreds of milliseconds. Keeping the data coherent between the multiple centers may significantly reduce the application performance.
The most effective and commonly accepted technique to minimize latency is caching, which has been successfully used in computer processing unit (CPU), file system, network, and data storage systems. Certain prior art techniques seek to provide unified global data images across wide area networks by means of coherence caches. A directory based invalidation cache coherence protocol at block level has also been used. While such technologies may solve many existing data sharing issues, they are not suitable for active/active data centers because of the following reasons. First, an invalidation protocol always invalidates other data copies upon a write operation. As a result, any change on a data block effectively eliminates the redundancy that is necessary for data protection and disaster recovery. Second, WAN latency directly impacts the application performance drastically because every write operation to a data block that may reside at other storages creates several network operations to keep cache coherence. Such a write stalls the I/O operations even though the data at a remote site is not being accessed at that moment.
Reliable data storage is essential in today's information age. Recent research has shown that data loss or data unavailability may cost up to millions of dollars per hour in many businesses. Solely depending on the traditional time-consuming backups is no longer adequate for today's information age. To protect data from disastrous failures, data replications are generally implemented over WAN networks. Examples of such systems include remote data mirroring (as disclosed in Cost-Effective Remote Mirroring Using the iSCSI Protocol, by M. Zhang, Y. Liu and Q. Yang, 21st IEEE Conference on Mass Storage Systems and Technologies, April 2004, pp. 385-398) and replication (as disclosed in Seneca: Remote Mirroring Done Write, by M. Ji, A. Veitch and J. Wilkes, Proc. of the USENIX Technical Conference, June 2003, pp. 253-268), each of which employs replicas to ensure high data reliability with data redundancy. A minor data center, however, is not an active data storage, and failover is costly and time consuming. It also typically requires considerable time to recover data in the case of failure (large RTO). Recovery Performance Objective (RPO) is also large for asynchronous mirroring. Further, it is typically costly and time consuming to comply with auditing requirements. Long WAN latency also leads to performance suffering for synchronous mirroring.
Replicating mutable data in a P2P (Peer to Peer) environment poses unique challenge to keep data coherence. In Flexible Consistency for Wide Area Peer Replication, 25th IEEE International Conference on Distributed Computing Systems, (ICDCS 2005), June 2005, pp. 199-208, S. Susarla and J. Carter surveyed a variety of WAN data sharing applications and identified three broad classes of applications: (1) file access, (2) database and directory services, and (3) real-time collaborative group-ware. Based on their survey, a new consistency model was developed to boost the performance of P2P data sharing. The impact of keeping data coherence on the performance of data sharing in P2P environment has also been reviewed, for example, in Ivy: A Read/Write Peer-to-Peer File System, by A. Muthitacharoen, R. Morris, T. M. Gil and B. Chen, Proc. of 5th Symposium on Operating Systems Design and Implementation (OSDI 2002), December 2002; Flexible Update Propagation for Weakly Consistent Replication, by K. Peterson, M. J. Spreitzer and D. B. Terry, Proc. of the 16th ACM Symposium on Operating System Principles, 1997, pp. 288-301; Fast Reconciliations in Fluid Replication, by L. Cox and B. Noble, Proceedings of the 21st International Conference on Distributed Computing Systems, April 2001; and Design and Evaluation of a Continuous Consistency Model for Replicated Services, by H. Yu and A. Vandat, Proc. of the 4th Symposium on Operating Systems Design and Implementations, 2000. Such analyses, however, are not targeted to data protection and disaster recovery of block level data storages.
Transactional memory and transactional storage have recently become active research areas. A principle advantage of transactional memory is avoiding unnecessary locking in case of data sharing. See, for example, Transactional Memory: Architectural Support for Lock-Free Data Structures, by M. P. Herlihy and J. E. B. Moss, Proceedings of the 1993 International Symposium on Computer Architecture, May 1993; LogTM: Log-Based Transactional Memory, by K. E. Moore, J. Bobba, M. J. Moravan, M. D. Hill and D. A. Wood, International Symposium on High Performance Computer Architecture, February 2006; and Unbounded Transactional Memory, by C. Scott, A. Krste, A. Bradley, C. Kuszmaul, C. E. Leiserson and S. Lie, http://supertech.csail.mit.edu/papers/xaction.pdf. The basic premise is based on the idea of optimistic concurrency control in databases as disclosed, for example, in On Optimistic Methods for Concurrency Control, by H. T. Kung and J. T. Robinson, ACM Transaction on Database Systems, Vol. 6, No. 2, June 1981, pp. 213-226.
Transactional storage concepts have also been studied to ensure serializability and correctness of multiple low level device I/Os (see Highly Concurrent Shared Storages, by K. Amiri, G. A. Gibson and R. Golding, Proc. of the International Conference on Distributed Computing Systems, April 2000) as well as file system integrity (see Statis: Flexible Transaction Storage, by R. Sears and E. Brewer, Proc. of Operating System Design and Implementation, 2006 and Providing Tuneable Consistency for a Parallel File Storage, by M. Vilayannur, P. Nath, and A. Sivasubramaniam, Proc. of the USENIX Symposium on File and Storage Technologies, December 2005).
There remains a need, however, for systems and method for employing backup data centers as active data storage serving I/O requests of servers. There is a further need to provide data coherence of storages at block level across WAN networks, and to allow active-to-active data sharing over redundant data across long distance. Not only must correctness of the underlying transactional storages be ensured, but excessive network latency must also be hidden while keeping data coherent.